package com.itestor.iptv.modules.alert.service;

import java.util.Date;
import java.util.List;
import java.util.Map;

import com.itestor.iptv.modules.alert.bean.RobotLogQuery;
import com.itestor.iptv.modules.alert.vo.RobotLogBean;
import com.itestor.iptv.modules.alert.vo.RobotLogDetailBean;
import com.itestor.iptv.modules.alert.vo.RobotLogOBJ;

/**
 * 
 * @author Mr.li
 *
 */
public interface RobotLogService {
    
    /**
     * 查询告警日志列表
     * @param pRobotLogQuery
     */
    void queryRobotLogList(RobotLogQuery pRobotLogQuery);
    
    /**
     * 导出告警日志excel用
     */
    void getRobotLogList(RobotLogQuery pRobotLogQuery);
    
    /**
     * 查询历史告警日志列表
     * @param pRobotLogQuery
     */
    void queryHisRobotLogList(RobotLogQuery pRobotLogQuery);
    
    /**
     * 导出历史告警日志excel用
     */
    void getHisRobotLogList(RobotLogQuery pRobotLogQuery);
    
    /**
     * 获取告警详细信息
     * @param idRobotLog
     * @return List
     */
    List<RobotLogDetailBean> getRobotLogDetailListByRobotLogId(Long idRobotLog);
    
    /**
     * 获取告警.
     * @param idRobotLog
     * @return
     */
    RobotLogOBJ get(Long idRobotLog);

    /**
     * 批量确认告警
     * @param pIds
     */
    void confirm(long[] pIds);
    
    /**
     * 批量清除告警
     * @param pIds
     */
    void delete(long[] pIds);
    
    /**
     * 
     * @param idRobotLog
     * @return
     */
    RobotLogBean getRobotLogBean(Long idRobotLog);
    
    /**
     * 获取20秒数据图片文件信息.
     * @param idRobotLogDetail
     * @return RobotLogDetailBean
     */
    RobotLogDetailBean getRobotLogDetailVideoPicInfo(Long idRobotLogDetail);
    
    /**
     * 获取最新的告警信息 
     * @param startTime
     * @param endTime
     * @param topn 
     * @return List
     */
    List<RobotLogBean> getLatestRobotLog(Date startTime,Date endTime,Integer topn);
    
    
    /**
     * 获取最新的告警次数
     * @param idRobotList 
     * @param startTime
     * @param endTime
     * @return List
     */
    Map<Integer,Integer> getLatestRobotAlertTally(List<Integer> idRobotList,Date startTime,Date endTime);
    
    
    
}
